package com.yuyh.library.utils;

import android.content.Context;
import android.net.Uri;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.yuyh.library.R;
import com.yuyh.library.constant.Constant;


/**
 * Created by arvin on 2016/5/24
 */
public class GlideUtils {
    /**
     * 加载普通图片（http://或者file://）
     */
    public static void loadImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url).placeholder(R.drawable.loading).diskCacheStrategy(DiskCacheStrategy.ALL).error(R.drawable.loading).dontAnimate().into(imageView);
    }
    /**
     * 加载普通图片（http://或者file://）
     */
    public static void loadImageCircleAdd(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url).placeholder(R.drawable.ic_addpic).diskCacheStrategy(DiskCacheStrategy.ALL)
                .error(R.drawable.ic_addpic).dontAnimate().into(imageView);
    }

    /**
     * 加载为圆形图片（一般为头像加载）
     */
    public static void loadCircleImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url).placeholder(R.drawable.head_defaul).override(Constant.HEAD_IMG_SIZE, Constant.HEAD_IMG_SIZE).diskCacheStrategy(DiskCacheStrategy.ALL).error(R.drawable.head_defaul).dontAnimate().
                transform(new GlideCircleTransform(context)).into(imageView);
    }

    /**
     * 加载为方形圆角图片（一般为头像加载）
     */
    public static void loadHeadCircularImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url)
                //.transform(new CenterCrop(context.getApplicationContext()),new GlideRoundTransform3(context.getApplicationContext(), Constant.HEAD_IMG_CIRCULAR))
                .override(Constant.HEAD_IMG_SIZE, Constant.HEAD_IMG_SIZE).diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.drawable.head_defaul).error(R.drawable.head_defaul)
                .dontAnimate().centerCrop().into(imageView);
      /*  Glide.with(context).load(imFriendEntivity.getHeadUrl()).transform(new GlideRoundTransform(context.getApplicationContext(),5)).centerCrop().placeholder(com.yuyh.library.R.drawable.friend_rest).error(com.yuyh.library.R.drawable.friend_rest)
                .dontAnimate().into(holder.img);*/
     /*   Glide.with(context.getApplicationContext()).load(url)
                .override(Constant.HEAD_IMG_SIZE, Constant.HEAD_IMG_SIZE).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.drawable.friend_rest).error(R.drawable.friend_rest)
                .dontAnimate().into(imageView);*/
    }
    /**
     * 加载为方形圆角图片（一般为头像加载）
     */
    public static void loadHeadGroupCircularImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url)
                .override(Constant.HEAD_IMG_SIZE, Constant.HEAD_IMG_SIZE)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.drawable.group_group)
                .error(R.drawable.group_group)
              //  .transform(new CenterCrop(context.getApplicationContext()),new GlideRoundTransform3(context, Constant.HEAD_IMG_CIRCULAR))
                .dontAnimate()
                .centerCrop()
                .into(imageView);
    }
    /**
     * 加载为方形圆角图片（一般为头像加载）
     */
    public static void loadHeadGroup2CircularImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url).transform(new GlideRoundTransform(context, Constant.HEAD_IMG_CIRCULAR))
                .override(Constant.HEAD_IMG_SIZE*3, Constant.HEAD_IMG_SIZE*3).diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(R.drawable.group_group).error(R.drawable.group_group)
                .dontAnimate().into(imageView);
    }

    /**
     * 加载为圆形缓存图片（一般为头像加载）
     */
    public static void loadCircleCacheImage(Context context, String url, ImageView imageView) {
        Glide.with(context).load(url).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.head_defaul).error(R.drawable.friend_rest).dontAnimate().
                transform(new GlideCircleTransform(context)).into(imageView);
    }

    /**
     * 加载为圆形图片（一般为头像加载）
     */
    public static void loadCircleImage(Context context, Uri url, ImageView imageView) {
        Glide.with(context).load(url).placeholder(R.drawable.head_defaul).diskCacheStrategy(DiskCacheStrategy.ALL).error(R.drawable.head_defaul).dontAnimate().
                transform(new GlideCircleTransform(context)).into(imageView);
    }

    /**
     * 加载为圆形图片（一般为头像加载）
     */
    public static void loadCircleImageFromWH(Context context, String url, ImageView imageView, int width, int height) {
        Glide.with(context).load(url).placeholder(R.drawable.head_defaul).diskCacheStrategy(DiskCacheStrategy.ALL).override(width, height).error(R.drawable.head_defaul).dontAnimate().
                transform(new GlideCircleTransform(context)).into(imageView);
    }

    /**
     * 加载本地图片（资源文件）
     */
    public static void loadLocalImage(Context context, int resId, ImageView imageView) {
        Glide.with(context).load(resId).dontAnimate().diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
    }

    /**
     * 加载为圆形图片（一般为头像加载）
     */
    public static void loadCircleImage(Context context, int resId, ImageView imageView) {
        Glide.with(context).load(resId).dontAnimate().transform(new GlideRoundTransform(context, Constant.HEAD_IMG_CIRCULAR)).into(imageView);
    }
}
